package com.netty.bytebuf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.CompositeByteBuf;
import io.netty.buffer.Unpooled;

import java.nio.charset.StandardCharsets;

/**
 * @author renyitong
 * @version 1.0.0
 * @createTime 2023年08月10日
 * @Description 我们想要对两个缓冲区组合的内容进行操作，我们就不用再单独创建一个新的缓冲区了.
 *  而是直接将其进行拼接操作，相当于是作为多个缓冲区组合的视图.
 */
public class CompositeByteBufDemo {

    public static void main(String[] args) {
        // 创建一个复合的缓冲区
        CompositeByteBuf cbb = Unpooled.compositeBuffer();
        cbb.addComponent(Unpooled.wrappedBuffer("他说：".getBytes(StandardCharsets.UTF_8)));
        cbb.addComponent(Unpooled.wrappedBuffer("伞兵一号卢本伟准备就绪!".getBytes(StandardCharsets.UTF_8)));

        for (int i = 0; i < cbb.numComponents(); i++) {
            ByteBuf component = cbb.component(i);
            String content = component.toString(StandardCharsets.UTF_8);
            System.out.println(content);
        }

        // 别忘记关闭
        cbb.release();

    }


}
